package com.kgc.kmall.kmallcloudmanagerservice.service;

import com.kgc.kmall.bean.PmsBaseAttrInfo;
import com.kgc.kmall.bean.PmsBaseAttrInfoExample;
import com.kgc.kmall.bean.PmsBaseAttrValue;
import com.kgc.kmall.bean.PmsBaseAttrValueExample;
import com.kgc.kmall.kmallcloudmanagerservice.mapper.PmsBaseAttrInfoMapper;
import com.kgc.kmall.kmallcloudmanagerservice.mapper.PmsBaseAttrValueMapper;
import com.kgc.kmall.service.AttrService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service
public class AttrServiceImpl implements AttrService {
    @Resource
    PmsBaseAttrInfoMapper pmsBaseAttrInfoMapper;
    @Resource
    PmsBaseAttrValueMapper pmsBaseAttrValueMapper;
    @Override
    public List<PmsBaseAttrInfo> select(Long catalog3Id) {
        PmsBaseAttrInfoExample example=new PmsBaseAttrInfoExample();
        PmsBaseAttrInfoExample.Criteria criteria = example.createCriteria();
        criteria.andCatalog3IdEqualTo(catalog3Id);
        List<PmsBaseAttrInfo> infoList = pmsBaseAttrInfoMapper.selectByExample(example);
        for (PmsBaseAttrInfo pmsBaseAttrInfo : infoList) {
            PmsBaseAttrValueExample example1=new PmsBaseAttrValueExample();
            PmsBaseAttrValueExample.Criteria criteria1 = example1.createCriteria();
            criteria1.andAttrIdEqualTo(pmsBaseAttrInfo.getId());
            List<PmsBaseAttrValue> pmsBaseAttrValues = pmsBaseAttrValueMapper.selectByExample(example1);
            pmsBaseAttrInfo.setAttrValueList(pmsBaseAttrValues);
        }
        return infoList;
    }

    @Override
    public Integer add(PmsBaseAttrInfo attrInfo) {
        if(attrInfo.getId()==null){
            pmsBaseAttrInfoMapper.insert(attrInfo);
        }else{
            pmsBaseAttrInfoMapper.updateByPrimaryKey(attrInfo);
        }
        if(attrInfo.getAttrValueList()!=null){
            PmsBaseAttrValueExample example=new PmsBaseAttrValueExample();
            example.createCriteria().andAttrIdEqualTo(attrInfo.getId());
            pmsBaseAttrValueMapper.deleteByExample(example);
        }
        if(attrInfo.getAttrValueList()!=null&&attrInfo.getAttrValueList().size()>0){
            pmsBaseAttrValueMapper.insertBach(attrInfo.getId(),attrInfo.getAttrValueList());
        }
        return attrInfo.getId().intValue();
    }

    @Override
    public List<PmsBaseAttrValue> getAttrValueList(Long attrId) {
        PmsBaseAttrValueExample example=new PmsBaseAttrValueExample();
        example.createCriteria().andAttrIdEqualTo(attrId);
        List<PmsBaseAttrValue> valueList = pmsBaseAttrValueMapper.selectByExample(example);
        return valueList;
    }
}
